package com.meta.platform.contract.domain.tunnel.db;


import com.meta.platform.contract.intf.entity.Contract;
import com.meta.platform.contract.intf.ro.ContractRo;

import java.util.List;

/**
 * 合同表
 * 
 * @author M.simple
 * @email 1111111111111@qq.com
 * @date 2020-12-08 15:53:37
 */
public interface ContractRepository{

	/**
	 * insert contract info
	 * @method      insertContract
	 * @param       contract:
	 * @return      void
	 * @author      M.simple
	 * @date        2020-12-08 15:53:37
	 */
	void insertContract(Contract contract);

	/**
	 * batch insert contract info
	 * @method      insertContract
	 * @param       contracts:
	 * @return      void
	 * @author      M.simple
	 * @date        2020-12-08 15:53:37
	 */
	void batchInsertContract(List<Contract> contracts);

	/**
	 * update contract info
	 * @method      updateContract
	 * @param       contract:
	 * @return      int
	 * @author      M.simple
	 * @date        2020-12-08 15:53:37
	 */
	int updateContract(Contract contract);

	/**
	 * update contract info By pk
	 * @method      updateContractByPk
	 * @param       contract:
	 * @return      int
	 * @author      M.simple
	 * @date        2020-12-08 15:53:37
	 */
	int updateContractByPk(Contract contract);

	/**
	 * list contract info
	 * @method      listContract
	 * @param       contract:
	 * @return      List<Contract>
	 * @author      M.simple
	 * @date        2020-12-08 15:53:37
	 */
	List<Contract> listContract(ContractRo contract);

    List<Contract> checkContractName(ContractRo contractRo);
}
